class Solution {
    // 直接使用栈
    // public String removeDuplicates(String s) {
    //     Stack<Character> stack = new Stack<>();
    //     for (int i = 0; i < s.length(); i++) {
    //         char c = s.charAt(i);
    //         if (!stack.isEmpty() && stack.peek() == c) {
    //             stack.pop();
    //         } else {
    //             stack.push(c);
    //         }
    //     }
    //     StringBuilder builder = new StringBuilder();
    //     while (!stack.isEmpty()) {
    //         builder.append(stack.pop());
    //     }
    //     return builder.reverse().toString();
    // }

    // 模拟栈的方式
    public String removeDuplicates(String s) {
        StringBuilder builder = new StringBuilder();
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if (builder.length() != 0 && builder.charAt(builder.length()-1) == c) {
                builder.deleteCharAt(builder.length()-1);
            } else {
                builder.append(c);
            }
        }
        return builder.toString();
    }
}